# Plugin-Name:      glx_gravatar 
# Plugin-Version:   2006.1
# Description:      Implementation of gravatar-images.
# Author:           der GrauMeister
# More Info at:     http://grauhirn.org/patterntext/glx_gravatar
# Compiled at:      Thu, 02 Feb 2006 06:09:23 +0100

# ......................................................................
# This is a plugin for Textpattern - http://textpattern.com/
# To install: textpattern > admin > plugins
# Paste the following text into the 'Install plugin' box:
# ......................................................................

YTo5OntzOjQ6Im5hbWUiO3M6MTI6ImdseF9ncmF2YXRhciI7czo3OiJ2ZXJzaW9uIjtzOjY6
IjIwMDYuMSI7czo2OiJhdXRob3IiO3M6MTU6ImRlciBHcmF1TWVpc3RlciI7czoxMDoiYXV0
aG9yX3VyaSI7czo0NDoiaHR0cDovL2dyYXVoaXJuLm9yZy9wYXR0ZXJudGV4dC9nbHhfZ3Jh
dmF0YXIiO3M6MTE6ImRlc2NyaXB0aW9uIjtzOjM0OiJJbXBsZW1lbnRhdGlvbiBvZiBncmF2
YXRhci1pbWFnZXMuIjtzOjQ6InR5cGUiO2k6MDtzOjQ6ImhlbHAiO3M6NTgyMjoiCTxwPjxz
dHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Lmdob3tiYWNrZ3JvdW5kLWNvbG9yOiMyMjI7Y29sb3I6
I2NjYztmb250LWZhbWlseTpWZXJkYW5hLHNhbnMtc2VyaWY7Zm9udC1zaXplOjAuOGVtO3Bv
c2l0aW9uOnJlbGF0aXZlO21hcmdpbjoxNXB4IGF1dG87cGFkZGluZzoxMHB4O3RleHQtYWxp
Z246bGVmdDt3aWR0aDo3NDBweDt9LmdobyBwe3BhZGRpbmc6NXB4O2JhY2tncm91bmQtY29s
b3I6IzI4MjgyODtib3JkZXI6MXB4IHNvbGlkICM1MTU1NTE7fS5naG8gYTpsaW5rLC5naG8g
YTp2aXNpdGVke2NvbG9yOiNhYTAzMDM7dGV4dC1kZWNvcmF0aW9uOm5vbmU7fS5naG8gYTpo
b3ZlciwuZ2hvIGE6YWN0aXZle2NvbG9yOiNhYTAzMDM7dGV4dC1kZWNvcmF0aW9uOnVuZGVy
bGluZTt9PC9zdHlsZT48ZGl2IGNsYXNzPSJnaG8iPjxwPlRoaXMgaXMgYSBUZXh0cGF0dGVy
bi1wbHVnaW4gYnkgPGEgaHJlZj0iaHR0cDovL2dyYXVoaXJuLm9yZy8iPiYjMzYyNjsmIzM2
Mzc7JiMzNjQ4OyYjMzYwNzsmIzM2MzQ7JiMzNjI2OyYjMzYxNzsmIzM2Mjk7JiMzNTkxOy4m
IzM2Mjk7JiMzNTkxOyYjMzU4ODsmIzM2NjA7JiMzNTg1OyYjMzYxOTs8L2E+LiBJZiB5b3Ug
ZmluZCBhIGJ1ZyBvciB0aGluayB0aGUgZG9jdW1lbnRhdGlvbiBjb3VsZCBiZSBhIGxpdHRs
ZSBiaXQgbW9yZSBpbiBkZXB0aCBvciB1bmRlcnN0YW5kYWJsZSwgPGEgaHJlZj0iaHR0cDov
L2dyYXVoaXJuLm9yZy9jb250YWN0LyI+cGxlYXNlIGRvIG5vdCBoZXNpdGF0ZSB0byBjb250
YWN0IHRoZSBhdXRob3I8L2E+LjwvcD48L2Rpdj48L3A+CgoJPGgyPmdseF9ncmF2YXRhcjwv
aDI+CgoJPHA+T3V0cHV0cyBhIGdyYXZhdGFyIGluIGNvbW1lbnRzLiBEZXZlbG9wZWQgYnkg
PGEgaHJlZj0iaHR0cDovL2pvaGFuLmdhbGF4ZW4ubmV0LyI+Sm9oYW4gTmlsc3NvbjwvYT4g
YW5kIG1haW50YWluZWQgYnkgPGEgaHJlZj0iaHR0cDovL2dyYXVoaXJuLm9yZy8iPmRlciBH
cmF1TWVpc3RlcjwvYT4uPC9wPgoKCTxwPk1vcmUgaW5mbyBhYm91dCBHcmF2YXRhcnMgYXQg
PGEgaHJlZj0iaHR0cDovL3d3dy5ncmF2YXRhci5jb20vIj5odHRwOi8vd3d3LmdyYXZhdGFy
LmNvbS88L2E+PC9wPgoKCTxoMz5hdHRyaWJ1dGVzPC9oMz4KCgk8aDQ+ZGlzYWJsZTwvaDQ+
CgoJPHA+U2V0IHRoaXMgdG8gMCBmb3IgZGlzYWJsaW5nIGdyYXZhdGFyLWltYWdlcy4gVGhp
cyBpcyBhIGNvbnZlbmllbnQgd29ya2Fyb3VuZCBpZiBncmF2YXRhci5jb20gaXMgdW5hdmFp
bGFibGUgYWdhaW4gYW5kIHRoZSBwcm9jZXNzIG9mIHRyeWluZyB0byBmZXRjaCB0aGUgaW1h
Z2VzIHNsb3dpbmcgeW91ciBwYWdlcyBkb3duLiBZb3UgZG9udCBuZWVkIHRvIGRlbGV0ZSB0
aGUgZ2x4X2dyYXZhdGFyLXRhZy4gZGVmYXVsdCBpcyBvZiBjb3Vyc2UgMS48L3A+CgoJPGg0
PmRlZmF1bHQ8L2g0PgoKCTxwPklmIHRoZSB1c2VyIGRvbnQgaGF2ZSBhIEdyYXZhdGFyIHlv
dSBjYW4gc3BlY2lmeSBhbiBpbWFnZSB0aGF0IHdpbGwgYmUgZGlzcGxheWVkIGluc3RlYWQu
IElmIG5vdCBnaXZlbiBubyBpbWFnZSB3aWxsIGJlIHJldHVybmVkLCB3aGVuIHRoZXJlIGlz
IG5vIGdyYXZhdGFyLWFjY291bnQgZm9yIHRoZSBnaXZlbiBlbWFpbGFkcmVzcy4gWW91IGhh
dmUgdG8gc3BlY2lmeSB0aGUgZnVsbCBwYXRoIHRvIHRoZSBpbWFnZSwgaWYgaXQgaXMgc2F2
ZWQgdW5kZXIgeW91ciBjdXJyZW50IHR4cC1pbnN0YWxsYXRpb24uPC9wPgoKCTxoND5zaXpl
PC9oND4KCgk8cD5TaXplIG9mIHRoZSBHcmF2YXRhci4gUG9zc2libGUgdmFsdWVzIGFyZSAw
IHRpbCA4MCBhbmQgODAgaXMgZGVmYXVsdC48L3A+CgoJPGg0PnJhdGluZzwvaDQ+CgoJPHA+
Q2FuIGJlIEcsIFBHLCBSIG9yIFguIE1vcmUgaW5mbyBhYm91dCB0aGUgcmF0aW5nIGF0IDxh
IGhyZWY9Imh0dHA6Ly93d3cuZ3JhdmF0YXIuY29tL3JhdGluZy5waHAiPkdyYXZhdGFyLmNv
bTwvYT4uIElmIG5vdCBnaXZlbiBubyByYXRpbmcgd2lsbCBiZSBhcHBsaWVkLjwvcD4KCgk8
aDQ+Ym9yZGVyPC9oND4KCgk8cD5XaGVuIHRoaXMgYXR0cmlidXRlIGlzIGdpdmVuLCBhbiBi
b3JkZXIgb2YgMXB4IHdpbGwgYmUgYXBwbGllZCB0byB0aGUgcGljdHVyZS4gVGhpcyBhdHRy
aWJ1dGUgY2FuIGNvbnRhaW4gdGhlIGhleC1jb2RlIG9mIHRoZSBjb2xvciAodGhyZWUgb3Ig
c2l4IGNoYXJhY3RlcnMpLiBQbGVhc2Ugbm90ZSwgdGhhdCB0aGlzIGJvcmRlciB3aWxsIGJl
IGluY2x1ZGVkIGluIHRoZSBhY3R1YWwgaW1hZ2UgYW5kIHdpbGwgYmUgc3Vic3RyYWN0ZWQg
b2YgdGhlIHJlc3VsdGluZyBzaXplICg/Pz8gaG93IHRvIGV4cGxhaW4gPGVtPnRoaXM8L2Vt
Pj8pLiBJZiB5b3UgZ2l2ZSBzaXplIDQwIHlvdXIgaW1hZ2Ugd2lsbCBiZSAzOHBpeGVsIHdp
ZGUgYW5kIHRoZSBib3JkZXIgYXJvdW5kIGl0IHdpbGwgaGF2ZSAxcGl4ZWwuPC9wPgoKCTxo
ND5jbGFzczwvaDQ+CgoJPHA+Q2xhc3MgdG8gYXNzaWduIHRvIHRoZSBpbWcgdGFnLiBJZiBu
b3QgZ2l2ZW4gbm8gY2xhc3Mgd2lsbCBiZSBhcHBsaWVkLjwvcD4KCgk8aDQ+YWx0PC9oND4K
Cgk8cD5UaGUgaW1hZ2UgYWx0IHRleHQuIERlZmF1bHQgaXMgZW1wdHkuPC9wPgoKCTxoMz50
aGUgaW1hZ2VjYWNoZTwvaDM+CgoJPHA+U3RhcnRpbmcgd2l0aCBWZXJzaW9uIDQuMC4xLjEg
YW4gaW1hZ2VjYWNoZSB3aWxsIGJlIHVzZWQgdG8gc2F2ZSBiYW5kd2lkdGggYW5kIChpbiBh
IGZ1dHVyZSB2ZXJzaW9uKSBoZWxwIGluIHRpbWVzIHdpdGggc2VydmVycHJvYmxlbXMgYXQg
dGhlIGdyYXZhdGFyc2l0ZS4gcGVyIGRlZmF1bHQgaW1hZ2VzIHdpbGwgYmUgc2F2ZWQgZm9y
IDYwIG1pbnV0ZXMgaW4gdGhlIGZpbGUtZGlyZWN0b3J5LCB3aGVyZSBhbiBmaWxlY2FjaGVm
b2xkZXIgd2lsbCBiZSBlc3RhYmxpc2hlZC4gVGhpcyBmb2xkZXIgd2lsbCBiZSB1c2VkIG9m
IHNvbWUgb2YgbXkgcGx1Z2lucywgc28gaWYgeW91IHVzZSBtb3JlIG9mIHRoZW0sIGJlIGNh
cmVmdWwgYW5kIGNoYW5nZSB0aGlzIHNldHRpbmdzIGluIGFsbCBwbHVnaW5zIG9yIG5vIHBs
dWdpbiA7KTwvcD4KCgk8aDQ+dXNlY2FjaGU8L2g0PgoKCTxwPlNldCB0aGlzIHRvIDAgdG8g
ZGlzYWJsZSB0aGUgY2FjaGUuIGRlZmF1bHQgaXMgZW5hYmxlZC48L3A+CgoJPGg0PmNhY2hl
cGF0aDwvaDQ+CgoJPHA+VGhlIG5hbWUgb2YgdGhlIGNhY2hlZm9sZGVyLiBUaGlzIGZvbGRl
ciB3aWxsIGJlIGxvY2F0ZWQgaW4gdGhlIGdsb2JhbCBmaWxlc2ZvbGRlciBvZiB0eHAsIHNv
IHlvdSBuZWVkIHRvIGdpdmUgaGVyZSBvbmx5IHRoZSBuYW1lIG9mIHRoZSBzdWJmb2xkZXIu
IFRoZSBnbG9iYWwgZmlsZWZvbGRlciBuZWVkcyB0byBiZSB3cml0YWJsZSBieSB0aGUgd2Vi
c2VydmVyIGFuZCBwaHAuIERlZmF1bHQgaXMgJiM4MjIwO2ZpbGVjYWNoZSYjODIyMTsuIFRo
aXMgZm9sZGVyIGNhbiBiZSBkZWxldGVkIHdpdGhvdXQgYW55IHByb2JsZW1zLCB0aGUgcGx1
Z2luIHdpbGwgcmVlc3RhYmxpc2ggaXQgaWYgaXQgZG9udCBmaW5kIGl0LjwvcD4KCgk8aDQ+
Y2FjaGV0aW1lPC9oND4KCgk8cD5Ib3cgbWFueSBtaW51dGVzIHRoZSBpbWFnZXMgc2hvdWxk
IGJlIGNhY2hlZD8gRGVmYXVsdCBpcyA2MCBtaW51dGVzLjwvcD4KCgk8aDQ+dXNlY3VybDwv
aDQ+CgoJPHA+VGhlIHBsdWdpbiB1c2VzIHRoZSBjdXJsLW1vZHVsZSBvZiBQSFAgd2hpY2gg
aXMgYSBmYXN0ZXIgd2F5IG9mIHJldHJpZXZpbmcgdGhlIGZpbGUuIElmIHlvdSBleHBlcmll
bmNlIGVycm9ycyB5b3UgY2FuIHNldCB0aGlzIG9wdGlvbiB0byB6ZXJvLCBzbyB0aGUgJiM4
MjIwO25vcm1hbCYjODIyMTsgZmlsZWdldGZ1bmN0aW9ucyB3aWxsIGJlIHVzZWQuPC9wPgoK
CTxoND50aW1lb3V0PC9oND4KCgk8cD5Ib3cgbG9uZyBzaG91bGQgdGhlIHBsdWdpbiB0cnkg
dG8gZ2V0IHRoZSBpbWFnZSBmcm9tIHRoZSBncmF2YXRhci1zZXJ2ZXI/IERlZmF1bHQgaXMg
NSBzZWNvbmRzLiBpZiB0aGUgZ3JhdmF0YXItc2VydmVyIGlzIGRvd24gdGhpcyB3aWxsIHN0
b3AgdGhlIGxvbmcgbG9hZGluZyB0aW1lIGZvciB5b3VyIHBhZ2VzLjwvcD4KCgk8aDM+RXhh
bXBsZTwvaDM+Cgo8cHJlPjxjb2RlPiZsdDt0eHA6Z2x4X2dyYXZhdGFyIC8mZ3Q7CiZsdDt0
eHA6Z2x4X2dyYXZhdGFyIHNpemU9IjYwIiBkZWZhdWx0PSJodHRwOi8vd3d3LmV4YW1wbGUu
Y29tL2ltYWdlcy9ncmF2YXRhci5wbmciIGNsYXNzPSJncmF2YXRhciIgLyZndDs8L2NvZGU+
PC9wcmU+CgoJPGgzPkNoYW5nZWxvZzwvaDM+CgoJPHA+MjAwNS0xMi0yNCB2LjIwMDYuMTwv
cD4KCTx1bD4KCQk8bGk+cmUtcmVsZWFzZSAocmV2aXNlZCBmb3IgVGV4dHBhdHRlcm4gNC4w
LjMpPC9saT4KCQk8bGk+bmV3IGRvY3VtZW50YXRpb248L2xpPgoJPC91bD4KCgk8cD48c3Ry
b25nPjQuMC4xLjM8L3N0cm9uZz4gMjAwNS0xMC0yNTwvcD4KCTx1bD4KCQk8bGk+ZmV0Y2gg
dGhlIGdyYXZhdGFyIHZpYSBQSFBzIGN1cmwtbW9kdWxlPC9saT4KCTwvdWw+CgoJPHA+PHN0
cm9uZz40LjAuMS4yPC9zdHJvbmc+IDIwMDUtMTAtMjI8L3A+Cgk8dWw+CgkJPGxpPmFiaWxp
dHkgdG8gZGlzYWJsZSB0aGUgY2FjaGU8L2xpPgoJPC91bD4KCgk8cD48c3Ryb25nPjQuMC4x
LjE8L3N0cm9uZz4gMjAwNS0xMC0yMjwvcD4KCTx1bD4KCQk8bGk+Y2FjaGluZyBvZiB0aGUg
Z3JhdmF0YXItaW1hZ2VzPC9saT4KCQk8bGk+ZGVmYXVsdGltYWdlIGlzIG5vdCBzZW5kIHRv
IHRoZSBzZXJ2ZXI8L2xpPgoJPC91bD4KCgk8cD48c3Ryb25nPjQuMC4xPC9zdHJvbmc+IDIw
MDUtMTAtMTc8L3A+Cgk8dWw+CgkJPGxpPmFsdC1hdHRyaWJ1dCBpcyBnaXZlbi1iYWNrIGVt
cHR5IGlmIHRoZSBhdHRyaWJ1dCBpcyBub3QgZ2l2ZW48L2xpPgoJCTxsaT5jb2RlcmV2aWV3
PC9saT4KCTwvdWw+CgoJPHA+PGRlbD48c3Ryb25nPjAuMjwvc3Ryb25nPiAyMDA1LTAzLTE3
IDxhIGhyZWY9Imh0dHA6Ly9jb21wb290ZXIub3JnLyI+QW5kcmV3PC9hPiBoYXMgbWFkZSBz
b21lIGdyZWF0IGltcHJvdmVtZW50cyB0byB0aGlzIHBsdWdpbi48L2RlbD4gVDxiciAvPgpo
aXMgb3B0aW1pemF0aW9ucyB0dXJuZWQgb3V0IHRvIGJlIHNvbWUgZXh0cmVtZSBwZXJmb3Jt
YW5jZWtpbGxlcnMgJiM4MjExOyB3ZSBhZHZpY2UgdG8gdXBkYXRlIHRvIHZlcnNpb24gNC4w
LjwvcD4KCTx1bCBjbGFzcz0iY2hhbmdlbG9nIj4KCQk8bGk+QWxsIHF1ZXJ5c3RyaW5ncyBh
cmUgZW1wdHkgYnkgZGVmYXVsdDwvbGk+CgkJPGxpPlRoZSBkZWZhdWx0IGltYWdlIGlzIG5l
dmVyIHNlbnQgdG8gdGhlIEdyYXZhdGFyIHNlcnZpY2U8L2xpPgoJCTxsaT5JZiBhIHVzZXIg
ZG9udCBoYXZlIGEgR3JhdmF0YXIgdGhlbiBpdCByZXR1cm5zIHRoZSBkZWZhdWx0IGltYWdl
LCBvciBub3RoaW5nIGF0IGFsbCAoSW4gMC4xIHRoZSBHcmF2YXRhciBzZXJ2aWNlIHJldHVy
bmVkIGEgMSYjMjE1OzEgcHggaW1hZ2UpPC9saT4KCTwvdWw+CgoJPHA+PHN0cm9uZz4wLjE8
L3N0cm9uZz4gMjAwNS0wMy0xMDwvcD4KCTx1bCBjbGFzcz0iY2hhbmdlbG9nIj4KCQk8bGk+
Rmlyc3QgcmVsZWFzZTwvbGk+Cgk8L3VsPgoKCTxwPk5vdGUhIFRoaXMgcGx1Z2luIHJlcXVp
cmVzIFRleHRwYXR0ZXJuIDQuMCBvciBncmVhdGVyPC9wPgoKCTxwPjxkaXYgY2xhc3M9Imdo
byI+PHA+cGx1Z2luIGNvbXBpbGVkIGF0OiBUaHUsIDAyIEZlYiAyMDA2IDA2OjA5OjIzICsw
MTAwIHwgY3VycmVudCB2ZXJzaW9uIGF0IDxhIGhyZWY9Imh0dHA6Ly9ncmF1aGlybi5vcmcv
cGF0dGVybnRleHQvZ2x4X2dyYXZhdGFyIj5odHRwOi8vZ3JhdWhpcm4ub3JnL3BhdHRlcm50
ZXh0L2dseF9ncmF2YXRhcjwvYT48L3A+PC9kaXY+PC9wPgoKCiAiO3M6NDoiY29kZSI7czoz
OTExOiIKZnVuY3Rpb24gZ2x4X2dyYXZhdGFyKCRhdHRzKSB7CglnbG9iYWwgJHRoaXNjb21t
ZW50LCAkZmlsZV9iYXNlX3BhdGg7CglpZiAoaXNzZXQoJGF0dHNbJ2Rpc2FibGUnXSkgJiYg
JGF0dHNbJ2Rpc2FibGUnXSA9PSAwKXsKCSAgICByZXR1cm47Cgl9OwoJJGNhY2hldGltZSA9
ICghZW1wdHkoJGF0dHNbJ2NhY2hldGltZSddKSkKCSAgID8gJGF0dHNbJ2NhY2hldGltZSdd
ICogNjAKCSAgIDogNjAgKiA2MDsKCSRjYWNoZXBhdGggPSAoIWVtcHR5KCRhdHRzWydjYWNo
ZXBhdGgnXSkpCgkgICA/ICRhdHRzWydjYWNoZXBhdGgnXQoJICAgOiAnZmlsZWNhY2hlJzsK
CSR1c2VjdXJsICAgPSAoaXNzZXQoJGF0dHNbJ3VzZWN1cmwnXSkgJiYgJGF0dHNbJ3VzZWN1
cmwnXSA9PSAwKQoJICAgPyAwCgkgICA6IDE7CgkkdXNlY2FjaGUgID0gKGlzc2V0KCRhdHRz
Wyd1c2VjYWNoZSddKSAmJiAkYXR0c1sndXNlY2FjaGUnXSA9PSAwKQoJICAgPyAwCgkgICA6
IDE7CglpZiAoJHVzZWNhY2hlID09IDEpewoJICAgJGNhY2hlID0gbmV3IGdob0ZpbGVjYWNo
ZSgkZmlsZV9iYXNlX3BhdGguJy8nLiRjYWNoZXBhdGgsICRjYWNoZXRpbWUpOwoJfTsKCSR1
cmwgPSAnaHR0cDovL3d3dy5ncmF2YXRhci5jb20vYXZhdGFyLnBocD9ncmF2YXRhcl9pZD0n
OwoJJHVybCAuPSBtZDUoJHRoaXNjb21tZW50WydlbWFpbCddKTsKCWlmICghZW1wdHkoJGF0
dHNbJ3JhdGluZyddKSl7CgkgICAgJHVybCAuPSAnJmFtcDtyYXRpbmc9Jy4kYXR0c1sncmF0
aW5nJ107Cgl9OwoJaWYgKCFlbXB0eSgkYXR0c1snc2l6ZSddKSl7CgkgICAgJHVybCAuPSAn
JmFtcDtzaXplPScuJGF0dHNbJ3NpemUnXTsKCX07CglpZiAoIWVtcHR5KCRhdHRzWydib3Jk
ZXInXSkpewoJICAgICR1cmwgLj0gJyZhbXA7Ym9yZGVyPScuJGF0dHNbJ2JvcmRlciddOwoJ
fTsKCWlmICgkdXNlY2FjaGUgPT0gMSkgewogICAgCWlmICgkY2FjaGUtPmNoZWNrX2NhY2hl
KCR1cmwpICE9ICJISVQiICYmICR1c2VjdXJsID09IDEpewogICAgICAgICAgICAkY2ggPSBj
dXJsX2luaXQoJHVybCk7CiAgICAgICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9S
RVRVUk5UUkFOU0ZFUiwgdHJ1ZSk7CiAgICAgICAgICAgICR0aW1lb3V0ID0gKGlzc2V0KCRh
dHRzWyd0aW1lb3V0J10pKQogICAgICAgICAgICAgICAgPyAkYXR0c1sndGltZW91dCddCiAg
ICAgICAgICAgICAgICA6IDU7CiAgICAgICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9Q
VF9DT05ORUNUVElNRU9VVCwgJHRpbWVvdXQpOwogICAgICAgICAgICBjdXJsX3NldG9wdCgk
Y2gsIENVUkxPUFRfSEVBREVSLCAwKTsKICAgICAgICAgICAgJGNvbnRlbnQgPSBjdXJsX2V4
ZWMoJGNoKTsKICAgICAgICAgICAgJGNhY2hlLT5zZXQoJHVybCwgJGNvbnRlbnQpOwogICAg
CX0gZWxzZWlmICgkY2FjaGUtPmNoZWNrX2NhY2hlKCR1cmwpICE9ICJISVQiKXsKICAgICAg
ICAgICAgJGNvbnRlbnQgPSBmaWxlX2dldF9jb250ZW50cygkdXJsKTsKICAgICAgICAgICAg
JGNhY2hlLT5zZXQoJHVybCwgJGNvbnRlbnQpOwogICAgICAgIH07CiAgICAgICAgbGlzdCgk
aXcsICRpaCwgJGl0LCAkaWEpID0gZ2V0aW1hZ2VzaXplKCR1cmwpOwogICAgCWlmICgkaXcg
PiAxICYmICRjYWNoZS0+Y2hlY2tfY2FjaGUoJHVybCkgPT0gIkhJVCIpewogICAgICAgICAg
ICAkdXJsID0gaHUuJ2ZpbGVzL2ZpbGVjYWNoZS8nLm1kNSgkdXJsKTsKICAgIAl9IGVsc2Vp
ZiAoIWVtcHR5KCRhdHRzWydkZWZhdWx0J10pKSB7CiAgICAJICAgICR1cmwgPSAkYXR0c1sn
ZGVmYXVsdCddOwogICAgCX0gZWxzZSB7CiAgICAJICAgIHJldHVybiBmYWxzZTsKICAgICAg
ICB9OwoJfSBlbHNlaWYgKCFlbXB0eSgkYXR0c1snZGVmYXVsdCddKSl7CiAgICAJJHVybCAu
PSAnJmFtcDtkZWZhdWx0PScudXJsZW5jb2RlKCRhdHRzWydkZWZhdWx0J10pOwoJfTsKCSRv
dXRwdXQgPSAnPGltZyBzcmM9IicuJHVybC4nIic7CglpZiAoIWVtcHR5KCRhdHRzWydjbGFz
cyddKSl7CgkgICAgJG91dHB1dCAuPSAnIGNsYXNzPSInLiRhdHRzWydjbGFzcyddLiciJzsK
CX07CgkkYWx0ID0gKCFlbXB0eSgkYXR0c1snYWx0J10pKQoJICAgPyAkYXR0c1snYWx0J10K
CSAgIDogJyc7Cgkkb3V0cHV0IC49ICcgYWx0PSInLiRhbHQuJyInOwoJJG91dHB1dCAuPSAo
IWVtcHR5KCRhdHRzWydzaXplJ10pKQoJICAgPyAnIGhlaWdodD0iJy4kYXR0c1snc2l6ZSdd
LiciIHdpZHRoPSInLiRhdHRzWydzaXplJ10uJyInCgkgICA6ICcgaGVpZ2h0PSI4MCIgd2lk
dGg9IjgwIic7Cgkkb3V0cHV0IC49ICcgLz4nOwoJcmV0dXJuICRvdXRwdXQ7Cn0KaWYgKCFm
dW5jdGlvbl9leGlzdHMoJ2ZpbGVfcHV0X2NvbnRlbnRzJykpIHsKCWRlZmluZSgnRklMRV9B
UFBFTkQnLCAxKTsKCWZ1bmN0aW9uIGZpbGVfcHV0X2NvbnRlbnRzKCRmaWxlbmFtZSwgJGNv
bnRlbnQsICRmbGFncyA9IDApIHsKCQlpZiAoISgkZmlsZSA9IGZvcGVuKCRmaWxlbmFtZSwg
KCRmbGFncyAmIEZJTEVfQVBQRU5EKSA/ICdhJyA6ICd3JykpKSB7CgkJCXJldHVybiBmYWxz
ZTsKCQl9OwoJCWlmIChmd3JpdGUoJGZpbGUsICRjb250ZW50KSl7CgkJCWZjbG9zZSgkZmls
ZSk7CgkJCXJldHVybiB0cnVlOwoJCX07CgkJcmV0dXJuIGZhbHNlOwoJfTsKfTsKaWYgKCFj
bGFzc19leGlzdHMoJ2dob0ZpbGVjYWNoZScpKSB7CiAgICBjbGFzcyBnaG9GaWxlY2FjaGUg
ewogICAgCXZhciAkQkFTRV9DQUNIRTsKICAgIAl2YXIgJE1BWF9BR0U7CiAgICAJZnVuY3Rp
b24gZ2hvRmlsZWNhY2hlKCRiYXNlPV9GSUxFX0NBQ0hFX0RJUiwgJGFnZT1fRklMRV9DQUNI
RV9BR0UpIHsKICAgIAkJJHRoaXMtPkJBU0VfQ0FDSEUgPSAkYmFzZTsKICAgIAkJJHRoaXMt
Pk1BWF9BR0UgPSAkYWdlOwogICAgCQlpZiAoIWZpbGVfZXhpc3RzKCR0aGlzLT5CQVNFX0NB
Q0hFKSkgewogICAgCQkJQG1rZGlyKCR0aGlzLT5CQVNFX0NBQ0hFLCAwNzc3KTsKICAgIAkJ
fTsKICAgIAl9CiAgICAJZnVuY3Rpb24gc2V0KCR1cmwsJGRhdGEpIHsKICAgIAkJJGNhY2hl
X2ZpbGUgPSAkdGhpcy0+ZmlsZV9uYW1lKCR1cmwpOwogICAgCQlpZiAoZmlsZV9wdXRfY29u
dGVudHMoJGNhY2hlX2ZpbGUsICRkYXRhKSA9PSB0cnVlKXsKICAgIAkJICAgIGNobW9kKCRj
YWNoZV9maWxlLCAwNzc3KTsKICAgIAkJCXJldHVybiAkY2FjaGVfZmlsZTsKICAgIAkJfSBl
bHNlIHsKICAgIAkJCXJldHVybiAwOwogICAgCQl9OwogICAgCX0KICAgIAlmdW5jdGlvbiBn
ZXQgKCR1cmwpIHsKICAgIAkJJGNhY2hlX2ZpbGUgPSAkdGhpcy0+ZmlsZV9uYW1lKCR1cmwp
OwogICAgCQlpZiAoIWZpbGVfZXhpc3RzKCRjYWNoZV9maWxlKSkgewogICAgCQkJcmV0dXJu
IDA7CiAgICAJCX07CiAgICAJCSRmcCA9IEBmb3BlbigkY2FjaGVfZmlsZSwgJ3InKTsKICAg
IAkJaWYgKCEkZnApIHsKICAgIAkJCXJldHVybiAwOwogICAgCQl9OwogICAgCQkkZGF0YSA9
IGZyZWFkKCRmcCxmaWxlc2l6ZSgkY2FjaGVfZmlsZSkpOwogICAgCQlyZXR1cm4gJGRhdGE7
CiAgICAJfQogICAgCWZ1bmN0aW9uIGNoZWNrX2NhY2hlKCR1cmwpIHsKICAgIAkJJGZpbGVu
YW1lID0gJHRoaXMtPmZpbGVfbmFtZSgkdXJsKTsKICAgIAkJaWYgKGZpbGVfZXhpc3RzKCRm
aWxlbmFtZSkpIHsKICAgIAkJCSRtdGltZSA9IGZpbGVtdGltZSgkZmlsZW5hbWUpOwogICAg
CQkJJGFnZSA9IHRpbWUoKSAtICRtdGltZTsKICAgIAkJCXJldHVybiAoJHRoaXMtPk1BWF9B
R0UgPiAkYWdlKSA/ICdISVQnIDogJ1NUQUxFJzsKICAgIAkJfTsKICAgIAkJcmV0dXJuICdN
SVNTJzsKICAgIAl9CiAgICAJZnVuY3Rpb24gZmlsZV9uYW1lKCR1cmwpewogICAgCQlyZXR1
cm4gam9pbihESVJFQ1RPUllfU0VQQVJBVE9SLCBhcnJheSgkdGhpcy0+QkFTRV9DQUNIRSwg
bWQ1KCR1cmwpKSk7CiAgICAJfQogICAgfQp9CiI7czozOiJtZDUiO3M6MzI6ImJhMWIxNmNi
OWMxZDliYzdlNjRhNDg1N2QxN2EwNGZiIjt9
